#!/usr/bin/env bash

. ./test.common
test_start "initstepslew directive"

freq_offset=0.0
wander=0.0
time_rms_limit=1e-3
limit=100

client_conf="initstepslew 5 192.168.123.1"
client_server_conf="#"

min_sync_time=6
max_sync_time=35

for time_offset in -2.0 -0.2 0.2 2.0; do
	run_test || test_fail
	check_chronyd_exit || test_fail
	check_packet_interval || test_fail
	check_sync || test_fail
	check_log_messages "00:00:0.Z System's initial.*slew" 1 1 || test_fail
done

min_sync_time=5
max_sync_time=5

for time_offset in -1e8 -1e2 1e2 1e8; do
	run_test || test_fail
	check_packet_interval || test_fail
	check_sync || test_fail
	check_log_messages "System's initial.*step" 1 1 || test_fail
done

time_offset=3
limit=500
servers=2
falsetickers=1
client_conf="initstepslew 5 192.168.123.1 192.168.123.2"
client_server_conf="server 192.168.123.2"

min_sync_time=360
max_sync_time=450

run_test || test_fail
check_chronyd_exit || test_fail
check_packet_interval || test_fail
check_sync || test_fail
check_log_messages "00:03:2.Z No suitable source for initstepslew" 1 1 || test_fail

client_conf="initstepslew 5 192.168.123.1 192.168.123.2"

min_sync_time=1
max_sync_time=500
server_conf="deny all"

run_test || test_fail
check_chronyd_exit || test_fail
check_packet_interval || test_fail
check_sync && test_fail
check_log_messages "00:00:1.Z No suitable source for initstepslew" 1 1 || test_fail

test_pass
